//
//  Modelo_Casilla.h
//  PEI
//
//  Created by asc on 04/04/12.
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#ifndef PEI_Modelo_Casilla_h
#define PEI_Modelo_Casilla_h

#include "Modelo.h"

class casilla : public Modelo {
    
public:
/*! 
 \brief Constructor
 \retval 
 \param false : 
*/
    casilla(bool init=false);
/*! 
 \brief Retorna el estado de la casilla 
 \retval bool :
 \param  : 
*/
    bool getEstado();
/*! 
 \brief Actualiza el valor de la casilla con el valor dado
 \retval void :
 \param newEstado : 
*/
    void setEstado(bool newEstado);
/*! 
 \brief  Modifica el valor de la siguiente etapa
 \retval void :
 \param estadoSiguiente : 
*/
    void setSiguiente(bool estadoSiguiente);
/*! 
 \brief Actuliza el valor de la casilla con el de la siguiente etapa
 \retval void :
 \param  : 
*/
    void Actualiza();
/*! 
 \brief 
 \retval void :
 \param adyacencia : 
*/
    void setCasillas(vector<casilla*> adyacencia);
/*! 
 \brief 
 \retval vector<casilla*> :
 \param  : 
*/
    vector<casilla*> getAdyacentes();
    
private:
    bool estado;
    bool siguienteEstado;
    vector<casilla*> adyacentes;
};

#endif
